Chapters and
are organized
into entries. Each entry describes one language feature or a group of
related features, where a feature is either a syntactic construct or a
built-in procedure. An entry begins with one or more header lines of the form
templateessential category
if the feature is an essential feature, or simply
templatecategory
if the feature is not an essential feature.
If category is ``'', the entry describes an expression type, and the header line gives the syntax of the expression type. Components of expressions are designated by syntactic variables, which are written using angle brackets, for example, expression, variable. Syntactic variables should be understood to denote segments of program text; for example, expression stands for any string of characters which is a syntactically valid expression. The notation
thing …indicates zero or more occurrences of a thing, and
thing thing …indicates one or more occurrences of a thing.
If category is ``procedure'', then the entry describes a procedure, and the header line gives a template for a call to the procedure. Argument names in the template are italicized. Thus the header line
(vector-ref vector k)essential procedure
indicates that the essential built-in procedure vector-ref takes two arguments, a vector vector and an exact non-negative integer k (see below). The header lines
(make-vector k)essential procedure (make-vector k fill)procedure
indicate that in all implementations, the make-vector procedure must be defined to take one argument, and some implementations will extend it to take two arguments.
It is an error for an operation to be presented with an argument that it
is not specified to handle. For succinctness, we follow the convention
that if an argument name is also the name of a type listed in
section , then that argument must be of the named type.
For example, the header line for vector-ref given above dictates that the
first argument to vector-ref must be a vector. The following naming
conventions also imply type restrictions:
Provide an example entry??